package com.unittec.drainage.provider.manage.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unittec.drainage.provider.manage.entity.WaterheadFeeCollection;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Jason
 * @date 2021/8/11
 */
public interface WaterheadFeeCollectionMapper extends BaseMapper<WaterheadFeeCollection> {
    //污水费应收分页
    IPage<Map<String, Object>> getWaterheadFeeCollectionPage(Page<?> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费应收导出
    List<Map<String, Object>> getWaterheadFeeCollectionPage(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费实收分页
    IPage<Map<String, Object>> getWaterheadFeeCollectionReceiptsPage(Page<?> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费实收导出
    List<Map<String, Object>> getWaterheadFeeCollectionReceiptsPage(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费欠收分页
    IPage<Map<String, Object>> getWaterheadFeeCollectionArrearsPage(Page<?> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费欠收导出
    List<Map<String, Object>> getWaterheadFeeCollectionArrearsPage(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费欠收合计
    Map<String, Object> getWaterheadFeeCollectionArrearsTotal(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费应收合计
    Map<String, Object> getWaterheadFeeCollectionTotal(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //污水费实收合计
    Map<String, Object> getWaterheadFeeCollectionReceiptsTotal(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //月度统计报表
    IPage<Map<String, Object>> getMonthlyReportPage(Page<?> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //月度统计报表导出
    List<Map<String, Object>> getMonthlyReportPage(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //月度统计报表总计
    Map<String, Object> getMonthlyReportTotal(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //年度统计报表
    IPage<Map<String, Object>> getYearlyReportPage(Page<?> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //年度统计报表导出
    List<Map<String, Object>> getYearlyReportPage(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);

    //年度统计报表总计
    Map<String, Object> getYearlyReportTotal(@Param(Constants.WRAPPER) LambdaQueryWrapper<?> ew);
}